I tried deploying flask app in AWS Elastic Beanstalk
i am preparing for AWS DVA certification exam and come in touch with "platform as a service" AWS Elastic Beanstalk i thought to give it a try .
i am aayush and below i shared my learning.
Overview of Elastic Beanstalk
Elastic Beanstalk is a developer centric view of deploying an aplication on AWS
managed service:
- automatically handles capacity provisioning load balancing,scaling, application health monitoring instance configuration etc
- just the application code is the responsibility of the developer
we still have full control over configuration
lets try :
-
creating vitualenvironment and activating virtualenvironment
python3 -m pip install --user virtualenv
python3 -m venv env
source</span> env/bin/activate
pip install flask
pip freeze > requirements.txt
-
creating falask app
Note: aws ElasticBeanStalk expects the veriable to be application instead off app therefore save the python file as application.py
from flask import Flask from datetime import datetime import re application = app = Flask(__name__) @app.route("/") def home(): return "Hello, developersIO!" @app.route("/hello/<name>") def hello_there(name): now = datetime.now() formatted_now = now.strftime("%A, %d %B, %Y at %X") # Filter the name argument to letters only using regular expressions. URL arguments # can contain arbitrary text, so we restrict to safe characters only. match_object = re.match("[a-zA-Z]+", name) if match_object: clean_name = match_object.group(0) else: clean_name = "Friend" content = "Hello there, " + clean_name + "! It's " + formatted_now return content
ziping requirements and application.py file to ebsblog.zip
zip ebsblog.zip requirements.txt application.py
-
deploy it in elastic beanstalk using console
- open elastic beanstalk from aws management console
- create application
- Application name:ebsblog
- Platform :Python
- Application code:Upload your code
- Local file: choose ebsblog.zip file
- click create application
- open the link
we have successfully deployed a flask application in aws elastic bean stalk.
References:
https://searchaws.techtarget.com/tutorial/Learn-how-to-deploy-a-Flask-app-to-AWS-Elastic-Beanstalk
deploying flask app using ebcli: